From 499021187ccbbe0e0303595224b40aab3b028e99 Mon Sep 17 00:00:00 2001 From: "iap10@freefall.cl.cam.ac.uk" Date: Sat, 12 Feb 2005 01:05:30 +0000 Subject: [PATCH] bitkeeper revision 1.1190 (420d565aLSpnsj5do0f0daHT7JHvkA) Subject: [PATCH] vmx-shadow-lock.patch Fix an assertion failure due to not holding the shadow_lock() Also remove a printk that makes debug=y too verbose. Fix an assertion that required PERF_COUNTER Signed-off-by: Arun Sharma Signed-off-by: ian@xensource.com --- xen/arch/x86/shadow.c | 5 +++-- xen/include/asm-x86/shadow.h | 2 ++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/xen/arch/x86/shadow.c b/xen/arch/x86/shadow.c index 5c9d43e028..0611c83797 100644 --- a/xen/arch/x86/shadow.c +++ b/xen/arch/x86/shadow.c @@ -434,7 +434,9 @@ void unshadow_table(unsigned long gpfn, unsigned int type) void vmx_shadow_clear_state(struct domain *d) { SH_VVLOG("vmx_clear_shadow_state:"); + shadow_lock(d); clear_shadow_state(d); + shadow_unlock(d); } #endif @@ -887,8 +889,7 @@ void check_pagetable(struct domain *d, pagetable_t pt, char *s) if ( ! (ss & PSH_shadowed) ) { - printk("%s-PT %p not shadowed\n", s, gptbase); - + /*printk("%s-PT %p not shadowed\n", s, gptbase);*/ if ( ss != 0 ) BUG(); return; diff --git a/xen/include/asm-x86/shadow.h b/xen/include/asm-x86/shadow.h index 073189c16a..ff90c2dccf 100644 --- a/xen/include/asm-x86/shadow.h +++ b/xen/include/asm-x86/shadow.h @@ -384,12 +384,14 @@ static void shadow_audit(struct domain *d, int print) printk("Xlive=%d free=%d\n",live,free); abs = (perfc_value(shadow_l1_pages) + perfc_value(shadow_l2_pages)) - live; +#ifdef PERF_COUNTERS if ( (abs < -1) || (abs > 1) ) { printk("live=%d free=%d l1=%d l2=%d\n",live,free, perfc_value(shadow_l1_pages), perfc_value(shadow_l2_pages) ); BUG(); } +#endif } #else #define shadow_audit(p, print) ((void)0) -- 2.30.2